package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

//集合的排序---Point对象
public class SortPoint {
    public static void main(String[] args) {
        List<Point> list =new ArrayList<>();
        list.add(new Point(9,9));
        list.add(new Point(6,5));
        list.add(new Point(19,45));
        list.add(new Point(50,90));
        list.add(new Point(44,60));
        list.add(new Point(30,7));
        System.out.println("list原始数据:"+list);
        /*
        Collections.sort(list, new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
               int len1=o1.getX()* o1.getX()+o1.getY()* o1.getY();
               int len2=o2.getX()*o2.getX()+o2.getY()* o2.getY();
                return len1-len2;
            }
        });

         */
        //jdk1.8时List集合提供了sort方法进行比较
        /*
        list.sort(new Comparator<Point>() {
            @Override
            public int compare(Point o1, Point o2) {
                return o1.getX()-o2.getX();
            }
        });

         */
            Collections.sort(list,(o1,o2)->{
                int len1=o1.getX()* o1.getX()+o1.getY()* o1.getY();
                int len2=o2.getX()*o2.getX()+o2.getY()* o2.getY();
                return len1-len2;
            });
        System.out.println("list排序后的数据:"+list);
    }
}
